loop, feedback loop, strange loop
「ループ」の区別
再帰警察の気があるので、フィードバックしないただの反復を「再帰的」と表現されるとモニョる
JS風に書けば、f = x => x == 0 ? 1 : x * f(x - 1) はプロパーな意味での自己再帰、arr.reduce((a, b => a + b, 0) もまぁ再帰、けどarr.forEach(f) はただの繰り返しでは... 的な
iteration→recurrence→recursion、loop→feedback loop→strange loop の順で、自己言及性が高まっていく
その系がどのタイプの「環」を内包しているかを、そこそこちゃんと区別して語りたい
ループ
ただの反復
イテレーション同士は相互依存しない。並列化が可能
フィードバックループ
回帰
違った!!!!
Recurrent
力学系
吐いたものが次の入力に影響する
RNNは回帰
古典的サイバネティクス
食う主体と、食われるものの区別
車とガソリンは違う
Recursion
再帰
全体が部分に含まれる
食う主体と、食われる客体が渾然一体となっている
人は飯を食うとともに、飯は人を形作る
第一級関数
STEAM教育において、抽象の力(アルゴリズム思考や数学的思考)は重要視されるが、実は「再帰の心」も同じくらい大事なんじゃないか
第一級関数やJulia/Lispのような構文木を自己改変できる言語を触ることで直観できる
それはゲームやワークショップとしてある程度面白く成立させるための、ギリギリのところの妥協だったと思うのだけど
不動点とするものがあるからこそ、座標空間が定まる すべてが動いてしまえば、基準とするものも無くなる
再帰の心